import axios from 'axios'; //引用官方axios库,用于封装自己的axios
import {showMessage} from '../utils/publicMethods.js'

//拦截请求前操作
axios.interceptors.request.use(
    (config) => {
      config.headers.Authorization =JSON.parse(localStorage.getItem("token")); //store.state.token // localStorage.getItem("token");//store.getToken()
      return config;
    },
    (error) => {
      Promise.reject(error);
    }
  );
  
  /**
   * response拦截器
   */
  axios.interceptors.response.use(
    (response) => {
      // 此处表示我们的请求让服务器正确的接收了，并且返回了数据（状态码 200）
      const status = response.data.code;
      switch (status)
       {
        case "500":
          showMessage("warning", "服务器响应出现问题，请稍后重试！");
          return;
        case "400":
          showMessage("warning", "服务器无法理解请求参数，请稍后重试！");
          return;
        case "401":
          showMessage("warning", "访问资源未授权，请登陆后重试！");
          return;
        case "403":
          showMessage("warning", "请求资源暂时不可用，请登陆后重试！");
          return;
        case "404":
          showMessage("warning", "请求资源暂不存在，请稍后重试！");
          return;
      }
      return response.data;
    },
    (error) => {
      // 此处表示服务器没有正确的处理我们的请求，然后给我们返回了错误的数据信息
      // status 表示 错误的http状态码
      if (!error.response) {
        showMessage("warning", "服务器出现问题，请稍后重试！");
        return;
      }
  
      return Promise.reject(error);
    }
  );
  export default axios;


